package com.zp.business.entity.exam;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.satoken.utils.LoginHelper;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * 检查申请主对象 exam_apply
 *
 * @author zhang peng
 * @ date 2024-01-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("exam_apply")
public class ExamApply extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private String id;

    /**
     * 就诊记录ID
     */
    private String clinicId;

    /**
     * 申请序号
     */
    private String applyNo;

    /**
     * 病人信息Id
     */
    private String patientId;

    /**
     * 住院/门诊 字典：clinic_or_visit
     */
    private String inoroutFlag;

    /**
     * 症状
     */
    private String symptom;

    /**
     * 体征
     */
    private String sign;

    /**
     * 临床诊断
     */
    private String clinicalDiag;

    /**
     * 其他诊断
     */
    private String relevantDiag;

    /**
     * 化验结果
     */
    private String relevantResult;

    /**
     * 确认人
     */
    private String confirmUser;

    /**
     * 取消确认
     */
    private String cancelConfirmUser;

    /**
     * 确认标志
     */
    private String confirmFlag;

    /**
     * 确认时间
     */
    private Date confirmDate;

    /**
     * 收费标志
     */
    private String chargeFlag;

    /**
     * 开单科室
     */
    private String applyDept;

    /**
     * 开单人员
     */
    private String applyUser;

    /**
     * 执行科室
     */
    private String implementDept;

    /**
     * 是否加急
     */
    private String isUrgent;

    /**
     * 机构ID
     */
    private String orgId;
    private String orgIdName;

    /**
     * 标志
     */
//    @TableLogic
    private String delFlag;

    public void initEntity() {
        this.delFlag = "0";
    }

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 住院id
     */
    private String visitId;

    /**
     * clinic_orders主鍵
     */
    private String clinicOrdersId;

    /**
     * 是否体检
     */
    private String isPhy;

    /**
     * 检查类别
     */
    private String examType;
    private String examTypeName;

    /**
     * 主诉
     */
    private String mainSuit;

    /**
     * 申请注意事项
     */
    private String matter;

    /**
     * 记录
     */
    private String notes;

    /**
     * 取消确认状态
     */
    private String confirmCancelFlag;

    /**
     * pacs确认字段
     */
    private String pacsFlag;

    /**
     * 真实开单时间
     */
    private Date realDate;


    /**
     * 熔断后异常信息
     */
    @TableField(exist = false)
    private String exceptionCode;

    /**
     * 确认人姓名
     */
    private String confirmUserName;
    /**
     * 取消人姓名
     */
    private String cancelConfirmUserName;
    /**
     * 执行科室名称
     */
    private String implementDeptName;
    /**
     * 开单科室名称
     */
    private String applyDeptName;
    /**
     * 开单人姓名
     */
    private String applyUserName;

    /**
     * 执行人
     */
    private String implementUser;
    private String implementUserName;

    /**
     * 修改人、修改时间信息信息
     */
    public void updateInfo() {
        setUpdateBy(LoginHelper.getLoginUser().getNickName());
        setUpdateTime(new Date());
    }

}
